﻿using System;
namespace Microsoft.Data.OData.Query
{
    /// <summary>
    /// Enumeration of kinds of query tokens.
    /// </summary>
    internal enum QueryTokenKind
    {
        /// <summary>
        /// The binary operator.
        /// </summary>
        BinaryOperator = 3,
        /// <summary>
        /// The unary operator.
        /// </summary>
        UnaryOperator,
        /// <summary>
        /// The literal value.
        /// </summary>
        Literal,
        /// <summary>
        /// The function call.
        /// </summary>
        FunctionCall,
        /// <summary>
        /// The property access.
        /// </summary>
        EndPath,
        /// <summary>
        /// The order by operation.
        /// </summary>
        OrderBy,
        /// <summary>
        /// A query option.
        /// </summary>
        CustomQueryOption,
        /// <summary>
        /// The Select query.
        /// </summary>
        Select,
        /// <summary>
        /// The *.
        /// </summary>
        Star,
        /// <summary>
        /// The Expand query.
        /// </summary>
        Expand = 13,
        /// <summary>
        /// Type segment.
        /// </summary>
        TypeSegment,
        /// <summary>
        /// Any query.
        /// </summary>
        Any,
        /// <summary>
        /// Non root segment.
        /// </summary>
        InnerPath,
        /// <summary>
        /// type segment.
        /// </summary>
        DottedIdentifier,
        /// <summary>
        /// Parameter token.
        /// </summary>
        RangeVariable,
        /// <summary>
        /// All query.
        /// </summary>
        All,
        /// <summary>
        /// ExpandTerm Token
        /// </summary>
        ExpandTerm,
        /// <summary>
        /// FunctionParameterToken
        /// </summary>
        FunctionParameter,
        /// <summary>
        /// FunctionParameterAlias
        /// </summary>
        FunctionParameterAlias,
        /// <summary>
        /// RawFunctionParameterValue
        /// </summary>
        RawFunctionParameterValue
    }
}
